#ifndef GAME_H
#define GAME_H

//Class prototype. NEED THIS, TOO.
class State;
//The State Machine class. I know, Game is a bad name for it.
class Game
{
private:
	//Holds the current State the game is in.
	State* currState;

public:
	Game() {currState = 0;}
	//Allows us to arbitrarily give the machine a state. DO NOT USE TO CHANGE A STATE, it will not exit the previous state.
	void setState(State* newState);
	//Allows us to peacefully change the state to a new one.
	void changeState(State* newState);
	//This executes the current state held by currState.
	void update();
	//Lets us know what state the machine has.
	State* getCurrState() {return currState;}
};

#endif